package com.zz.service;

import com.zz.dto.GetBed;
import com.zz.dto.PatientLiveIn;
import com.zz.dto.PatientResult;
import com.zz.pojo.Patient;

import java.util.Map;

/**
 * Copyright Zz
 * FileName: PatientService
 * Author:   Zz
 * Date:     2023/6/512:12
 * Description:在院病人业务层接口
 * hISTORY:
 * <author>  <time>     <version>    <desc>
 * 作者姓名   修改时间       版本号       描述
 */
public interface PatientService {
    /**
     * 分页查询在院病人信息(以入住时间降序排序)
     * @return 指定页面内以入住时间降序排序的在院病人信息
     */
    PatientResult queryPatientListOrderByTime(Map<String,Integer> map);


    /**
     * number: 1-id 2-姓名 3-性别 4-年龄 5-入住时间 6-病因 7-床,根据number动态sql查询
     * @param map number:查询方式，name查询关键词，startIndex:分页起始位置,pageSize:返回页面大小（也即数据长度）
     * @return 以指定查询方式查询在院病人信息(模糊查询)
     */
    PatientResult queryPatientListByNumber(Map <String, Object> map);


    /**
     * 病人住院
     * @param patientLiveIn 新的入住病人
     * @return 入院是否成功（1成功，0失败）
     */
    GetBed insertPatient(PatientLiveIn patientLiveIn);

    /**
     * 修改在院病人信息
     * @param patientLiveIn 要修改的病人信息
     * @return 1-成功 0-失败 2-查无此病人记录 3-要转移的房间不存在 4-房间已满
     */
    GetBed updatePatient(PatientLiveIn patientLiveIn);
}
